home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / varinc.lzh / PAGE264.C < prev    next >
C/C++ Source or Header  |  1979-11-30  |  1KB  |  32 lines

  1. #define DELIM '|'               /* delimiter to separate fields of a record */
  2.  
  3. /****************************************************************************/
  4. /* strfld() copies a field from a record to a separate string and returns   */
  5. /*   the starting address of the target, to_str.                            */
  6. /****************************************************************************/
  7.  
  8. char *strfld(to_str, from_rec, fld_num);
  9. char to_str[];                            /* target string to copy field to */
  10. char from_rec[];                        /* record string to copy field from */
  11. short fld_num;                                      /* field number to copy */
  12.  
  13.    {
  14.    short ifrom, ito;                    /* indices into from_rec and to_str */
  15.  
  16.    /* Skip over (fld_num - 1) delimiters to the field to copy. */
  17.    for (ifrom = 0; --fld_num && from_rec[ifrom] != '\0';)
  18.       {
  19.       while (from_rec[ifrom] != '\0' && from_rec[ifrom] != DELIM)
  20.          ++ifrom;
  21.       if (from_rec[ifrom] == DELIM)    
  22.          ++ifrom;
  23.       }
  24.  
  25.    /* Copy field from from_rec to to_str. */
  26.    for (ito = 0; from_rec[ifrom] != '\0' && from_rec[ifrom] != '\n' 
  27.       && from_rec[ifrom] != DELIM; ++ifrom, ++ito)
  28.       to_str[ito] = from_rec[ifrom];          /* Copy a character to to_str. */
  29.    to_str[ito] = '\0';
  30.    return (&to_str[0]);
  31.    }
  32.